package xxl.ioc.signals 
{
	import xxl.ioc.mapping.InjectionMapping;
	import xxl.signals.impl.MapSignal;
	import xxl.signals.impl.Signal;
	
	/**
	 * ...
	 * @author XXL
	 */
	public class MappingSignal extends MapSignal 
	{
		public static const PRE_MAPPING_CREATE : String = 'preMappingCreate';
		public static const POST_MAPPING_CREATE : String = 'postMappingCreate';
		public static const PRE_MAPPING_CHANGE : String = 'preMappingChange';
		public static const POST_MAPPING_CHANGE : String = 'postMappingChange';
		public static const POST_MAPPING_REMOVE : String = 'postMappingRemove';
		public static const MAPPING_OVERRIDE : String = 'mappingOverride';

		
		public function MappingSignal() 
		{
			super(Signal, String, Class, String, InjectionMapping);
		}
		
		[Inline]
		final public function dispatchFun(type:String, mappedType:Class, mappedName:String, mapping:InjectionMapping):void
		{
			dispatch(type, mappedType, mappedName, mapping);
		}
		
	}

}